<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /*
            Window对象
                在浏览器中,浏览器为我们提供了一个Window对象,可以直接访问
              - Window对象代表的是浏览器窗口,通过该对象可以对浏览器窗口进行各种操作
                除此以外Window对象还负责存储JS中的内置对象和浏览器的宿主对象
              - Window对象的属性可以通过Window对象访问,也可以直接访问
              - 函数就可以被认为是Window对象的方法
        */
        alert(window)
        window.alert(123)
        window.console.log("哈哈");
        window.a = 10 //想window对象中添加的属性会自动成位全局变量
    
        console.log(a);
        /*
            var用来声明变量,作用和let相同,但是var不具有块作用域
                - 在全局中使用var变量,都会作为window对象的属性保存
                - 使用let声明的变量不会储存到window对象中,而存在一个秘密的小地方(无法访问)
                - var岁让没有块作用域,但有函数作用域
        */
       var b = 20 //window.b = 20;

       function fn() {
            alert("我是fn")
       }
       console.log(window.b);
        window.fn()
        let c = 33
        window.c = 44
        console.log(c);
       function fn2(){
         // var d = 10 //var岁让没有块作用域,但有函数作用域
        d = 10 //X 在局部作用域中,如果没有使用var或者let声明变量,则变量会自动成位window对象的属性,也就是全局变量

       }   
       fn2()
       console.log(d);
       /* 
        */
    </script>
</head>
<body>
    
</body>
</html>